Open Mobile Alliance (OMA), which is developing a mobile application standard for instant messaging, supports two means for exchanging instant messages, one of which is based on legacy Interpersonal Messaging System (IMPS) technology and the other of which is based on Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIP/SIMPLE) technology. Instant messaging systems using the two means can interwork.
In IMPS, a user who sends an instant message may request an instant message delivery report including information about the receipt status of the instant message by a recipient. In a Boolean field, a primitive including an instant message delivery report request of the user, i.e., a sender mobile communication terminal, is a “Send Message Request” and a primitive including the instant message delivery report is a “Delivery Report Request” primitive, which are shown in FIGS. 1 and 2. FIG. 1 illustrates an instant message delivery report requesting process in general IMPS, and FIG. 2 illustrates an instant message delivery reporting process in general IMPS. If a mobile communication terminal 10 sends an instant message delivery report request to an IMPS server 20 using the “Send Message Request” primitive when sending an instant message in step 101, the IMPS server 20 sends a “Send Message Response” primitive to the mobile communication terminal 10 in response to the “Send Message Request” primitive in step 103. The IMPS server 20 then sends the instant message to a recipient mobile communication terminal and sends the “Delivery Report Request” primitive including information about the receipt status of the instant message by the recipient mobile communication terminal and a reason for a failure in the receipt of the instant message to the sender mobile communication terminal 10 in step 105. The sender mobile communication terminal 10 sends a “Status” primitive to the IMPS server 20 in response to the “Delivery Report Request” primitive in step 107.
FIGS. 3 through 7 illustrate embodiments in various scenarios of an instant message delivery reporting process. FIG. 3 illustrates an instant message delivery reporting process when the receipt of an instant message is successful in general IMPS. In FIG. 3, the instant message is delivered without notification.
If a first mobile communication terminal 30, which is a sender mobile communication terminal, sends an instant message delivery request and a “Send Message Request” primitive including an instant message delivery report request to an IMPS server 20 in step 109, the IMPS server 20 sends a “Send Message Response” primitive to the first mobile communication terminal 30 in response to the “Send Message Request” primitive in step 111. The IMPS server 20 then sends a “New Message” primitive to a second mobile communication terminal 40, which is a recipient mobile communication terminal, to send the instant message in step 113. The second mobile communication terminal 40 which receives the instant message sends a “Message Delivered” primitive to the IMPS server 20 to indicate that the instant message is successfully delivered in step 115. The IMPS server 20 sends a response code indicating that the instant message is successfully received to the first mobile communication terminal 30 through a “Delivery Report Request” primitive in step 117 and the first mobile communication terminal 30 sends the “Status” primitive to the IMPS server 20 in response to the “Delivery Report Request” primitive in step 119.
FIG. 4 illustrates an instant message delivery reporting process in Notify/Get instant message delivery in general IMPS. In FIG. 4, an instant message is delivered with notification.
If the first mobile communication terminal 30, which is a sender mobile communication terminal, sends a “Send Message Request” primitive including an instant message delivery report request in step 121, the IMPS server 20 sends a “Send Message Response” primitive to the first mobile communication terminal 30 in response to the “Send Message Request” primitive in step 123. Since the delivery method is set to “Notify/Get” by the second mobile communication terminal 40 that is a recipient mobile communication terminal, the IMPS server 20 notifies the second mobile communication terminal 40 of the existence of an instant message to be received, through a “Message Notification” primitive in step 125. The second mobile communication terminal 40 sends a “Status” primitive to the IMPS server 20 in response to the “Message Notification” primitive in step 127 and requests the instant message to be received, through a “Get Message Request” primitive in step 129. The IMPS server 20 sends a “Get Message Response” primitive including the instant message to be received to the second mobile communication terminal 40 in step 131. Upon receipt of the “Get Message Response” primitive, the second mobile communication terminal 40 sends a “Message Delivered” primitive indicating the instant message is successfully received, to the IMPS server 20 in step 133. The IMPS server 20 sends the “Status” primitive to the second mobile communication terminal 40 in response to the “Message Delivered” primitive in step 135 and sends a response code indicating that the instant message is successfully received through a “Delivery Report Request” primitive in step 137. The first mobile communication terminal 30 sends the “Status” primitive to the IMPS server 20 in response to the “Delivery Report Request” primitive in step 139.
FIG. 4 illustrates another instant message delivery reporting process in Notify/Get instant message delivery in general IMPS. In FIG. 4, an instant message is requested using a “Forward Message Request” primitive in response to notification. Steps 141 through 147 of FIG. 5 are similar to steps 121 through 127 of FIG. 4.
The second mobile communication terminal 40 that receives a “Message Notification” primitive sends the “Forward Message Request” primitive to the IMPS server 20 in step 149 to request an instant message to be received. The IMPS server 20 sends a “Status” primitive including the instant message to be received to the second mobile communication terminal 40 in step 151 and sends a response code indicating that the instant message is successfully received through a “Delivery Report Request” primitive in step 153. The first mobile communication terminal 30 sends the “Status” primitive to the IMPS server 20 in response to the “Delivery Report Request” primitive in step 155.
FIG. 6 illustrates an instant message delivery reporting process when the receipt of an instant message is rejected in general IMPS. Steps 157 through 163 of FIG. 6 are similar to steps 121 through 127 of FIG. 4. The second mobile communication terminal 40 that receives a “Message Notification” primitive sends a “Reject Message Request” primitive for rejecting the receipt of the instant message to the IMPS server 20 in step 165. The IMPS server 20 sends a “Status” primitive to the second mobile communication terminal 40 in response to the “Reject Message Request” in step 167 and sends a response code indicating the receipt of the instant message is rejected, to the first mobile communication terminal 30 through a “Delivery Report Request” primitive in step 169. The first communication terminal 30 sends the “Status” primitive to the IMPS serve 20 in response to the “Delivery Report Request” primitive in step 171.
FIG. 7 illustrates an instant message delivery reporting process when the validity of an instant message expires in general IMPS. Steps 173 and 175 of FIG. 7 are similar to steps 121 and 123 of FIG. 4. If the recipient mobile communication terminal 40 is not reachable for some reasons like out-of-network coverage, the IMPS server 20 may fail to deliver the instant message within the message validity. Once recognizing that the validity of the instant message expires in step 177, the IMPS server 20 proceeds to step 179 without any notification to the second mobile communication terminal 40. At this time, the second mobile communication terminal 40 cannot receive the instant message, i.e., is not reachable. The IMPS server 20 sends a response code indicating that the validity of the instant message expires to the first mobile communication terminal 30 through a “Delivery Report Request” primitive in step 179. The first mobile communication terminal 30 sends a “Status” primitive to the IMPS server 20 in response to the “Delivery Report Request” primitive in step 181.
As such, in an instant messaging service according to IMPS, when a sender terminal requests an instant message delivery report, a delivery report including information about the receipt status of an instant message and a reason for a failure in the receipt of the instant message is sent. The delivery report may include a response code like Message queue full, Recipient user/group does not exist, and Recipient user blocked the sender, in addition to Successfully received, Receipt rejected, and Validity expires.
In SIP/SIMPLE, a user who sends an instant message does not explicitly request an instant message delivery report. However, a response code indicating the receipt status of the instant message by a recipient mobile communication terminal is included in a response message to an instant message delivery request. Referring to FIG. 8, if the first mobile communication terminal 30 which is a sender mobile communication terminal sends a “Message” primitive requesting an instant message delivery to an SIP/SIMPLE server 50 in step 183, the SIP/SIMPLE server 50 sends the instant message through the “DR Message” primitive to the second mobile communication terminal 40 which is a recipient mobile communication terminal in step 185. Upon receipt of the “Message” primitive, the second mobile communication terminal 40 sends a “Response Code” primitive to the SIP/SIMPLE server 50 in response to the “Message” primitive in step 187. The SIP/SIMPLE server 50 sends information corresponding to the instant message delivery report through response codes as below to the first mobile communication terminal 30 through the “Response Code” primitive in step 189.
The response codes may be:
200 OK—Successful
202—Accepted
3xx—Redirection
4xx—Request failure
5xx—Server failure
6xx—Global failure
The 202 Accepted response code is generated when the instant message is delivered to a gateway, a store and forward server, or other services that may deliver the instant message. As a result, it is not desirable to make an assumption that the instant message is delivered to a final destination when the first mobile communication terminal 30 receives the 202 Accepted response code. However, after sending the 202 Accepted response code, the SIP/SIMPLE server 50 does not generate an additional response code regardless of the success or failure in the delivery of the instant message. As a result, the first mobile communication terminal 30 cannot confirm the receipt status of the instant message when receiving the 202 Accepted response code.
Moreover, although IMPS and SIP/SIMPLE can perform instant message delivery reporting processes, in the case of an instant messaging system in which IMPS and SIP/SIMPLE interwork, the instant message delivery reporting processes of IMPS and SIP/SIMPLE are not compatible with each other. As a result, a sender mobile communication terminal cannot confirm the receipt status of the instant message by a recipient mobile communication terminal.